package com.sky.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;

/**
 * redisTemplate配置类, 可以不写
 */
@Slf4j
@Configuration
public class RedisConfiguration {

    @Bean                               //用到工厂模式
    public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        //1.输出日志
        log.info("初始化redisTemplate...");
        //2.设置key的序列化器StringRedisSerializer, 默认是 JdkSerializationRedisSerializer序列化器
        RedisTemplate redisTemplate = new RedisTemplate();
        //注意: 不推荐修改value序列化器, 修改之后, 不会在帮你强转类型, 只能存字符串的了
        //redisTemplate.setValueSerializer(new StringRedisSerializer());
        //设置key的序列化器                          字符串的序列化器,  不写默认有一个jdk的序列化器
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        //通过redis的工厂创建对象  --> 他就会自动帮你构造redisTemplate这个对象了
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        return redisTemplate;
    }

}
